/*
 * ILaser.java
 *
 * Created on 4 czerwiec 2007, 19:31
 *
 * Abstrakcyjna klasa, ktora musza implementowac wszystkie moduly programu
 *
 */

package ste;
import out.IOut;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


/**
 *
 * @author Michal
 */
public abstract class TAbstBlock {
    
    protected TAbstBlock theNext;

    /**	Nazwa zak�adki (JTabbedPane) w oknie
     * @return Nazwa zak�aki
     */
    public abstract String getTabTitle();
    
    /**	Zwraca JComponent (do JTabbedPane) z ewentualnymi opcjami mozliwymi
     * do ustawienia
     * @return JComponent
     */
    public abstract JComponent getJComponent();
    
    /**	Ustawia nastepny blok
     * @return JComponent
     */
    public abstract void setNext(TAbstBlock aNext);
    
    /** Sprawdza i ewentualnie zmienia ustawienia pocz�tkowe (z grafiki)
     */
    public abstract void checkSettings();
    
    /** Wy�wietla okno z grafik�
     */
    public abstract void showGraphic();
    
    /** Kasuje baze punktow
     */
    public abstract void clear();
    
    /** Metoda startujaca dany modul
     */
    public abstract void starter(IOut o);
    
    /** Metoda wywoływana po odczytaniu wszystkich skanow
     */
    public abstract void finish();
    //=== koniec metod abstrakcyjnych
    
    protected JComponent getObjP() {//panel z ustawieniami do wizualizacji
        JPanel jp = new JPanel(new GridLayout(0,2));
        
        JButton graB = new JButton("Pokaz");
        graB.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e) { showGraphic(); }
        });
        jp.add(graB);
        
        jp.setBorder(BorderFactory.createTitledBorder("Grafika : "));
        return jp;
    } //koniec getObjP

    
    
    //Metody pomocnicze
    protected void showErr(String aStr) {
        JOptionPane.showMessageDialog(null,
                aStr, "Blad !", JOptionPane.WARNING_MESSAGE);
        System.exit(0);
    } //koniec showErr
} //koniec interfejsu IBlock
